// 为输入框添加按键监听事件
screenshotInputBox.addEventListener("keypress",
    event => {
        // 当按下的键是 Enter 且没有同时按下 Shift 键时
        if (event.key === "Enter" && !event.shiftKey) {
            // 阻止默认的换行行为
            event.preventDefault();
            // 调用创建轻量视觉的函数
            createSimpleVisual();
        }
    }
);

// 为输入按钮添加点击监听事件，点击时调用创建轻量视觉的函数
screenshotInputButton.addEventListener("click", () => createSimpleVisual());

/**
 * 创建轻量视觉内容
 *
 * 从输入框获取内容，若内容不为空则添加消息到历史记录并进行渲染，最后清空输入框
 */
async function createSimpleVisual() {
    /**
     * 获取用户输入
     */
    const userMessage = getUserMessage();
    /**
     * 获取图片数据
     */
    const imageData = screenshotCore.getMergedImageData();
    // 检查是否已连接视觉分析端点
    if (!isVisualConnected && !visualEndpointConnection()) return;
    // 检查消息是否为空或按钮是否禁用
    if (!userMessage || getInputButtonsDisabledState()) return;
    // 判断是否完成了图片捕获操作
    if (downloadBtn.disabled == true) {
        showSystemMessage('阁下, 你还没有< 捕获屏幕 >呢', 'error');
        return;
    }
    // 禁用按钮
    disabledInputButton(true);
    /**
     * 视觉分析模型
     *
     * @returns {Promise<string>} 视觉分析结果
     */
    function VisualHandleModel() {
        return requestVisualAnalysis('', userMessage, imageData);
    };
    // 调用视觉分析模型
    await loadConversationFromAPI(chatHistoryPanel, '', VisualHandleModel);
};